package com.zmc.order.application;

import com.zmc.common.domain.resp.freight.FreightPriceResp;
import com.zmc.common.domain.resp.order.ThirdPayResp;
import com.zmc.common.domain.vo.order.OrderPayInfo;
import com.zmc.common.utils.PageUtils;
import com.zmc.common.utils.R;
import com.zmc.order.infrastructure.bean.query.OrderManageQuery;
import com.zmc.order.infrastructure.bean.resp.OrderInfoResp;
import com.zmc.order.infrastructure.bean.resp.OrderPayResp;
import com.zmc.order.infrastructure.bean.vo.OrderReturnApplyVo;
import com.zmc.order.infrastructure.bean.vo.SubmitOrderVo;

/**
 * @Author：zmc
 * @Date：2024/11/7 10:01
 */
public interface OrderApplicationService {
    void submit(SubmitOrderVo vo);

    OrderPayResp getOrderPayInfo(String orderSn);

    OrderPayInfo getThirdPayInfo(String orderSn);

    PageUtils pageOrder(OrderManageQuery query);

    void cancelOrder(String orderSn);

    OrderInfoResp orderInfo(String orderSn);

    void splitOrder(ThirdPayResp payResp);

    void applyRefund(OrderReturnApplyVo vo);

    void approveRefund(OrderReturnApplyVo vo);

    void refundHandle(String orderSn);

    R paySuccessDetail(String orderSn);

    void orderCreateLogistics(String orderSn);

    FreightPriceResp queryFreightPrice(String orderSn);

    void cancelFreight(String orderSn);

    void freightSignComplete(String orderSn);

    void confirmSendGood(String orderSn);

    void confirmGetGood(String orderSn);

}
